#ifndef CUDA_RRT_TYPES_H
#define CUDA_RRT_TYPES_H

#include "cuda_defs.h"

union SerializedStates
{
	float x[8];
	struct Components
	{
		float r[3];
		float q[5];
	} components;
};	

struct PoissonDiskSampleData
{
	SerializedStates* samples;
	int* numSamples;
	int* h_numSamples;
	int* levels;
	RRT_TREE_ID* isTreeNode;
};

struct RrtTree
{
	int* numTreeNodes;
	int* h_numTreeNodes;
	int* treeNodeIndices;		// index to samples
	int* treeNodeParentIndices; // index to d_startTreeNodeXXX
	SerializedStates* treeNodes;
	RRT_TREE_ID h_RrtTreeId;
};

#endif